package com.project.mapper;

import com.project.bean.UserBean;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.ResultType;
import org.apache.ibatis.annotations.Select;

@Mapper
public interface IUserMapper {
    /**
     * 登陆，登陆成功，同时封装登陆用户的权限
     * @param name 用户名
     * @param pwd 密码
     * @return 登陆用户，如果登陆失败，返回null
     */
    public UserBean login(@Param("name") String name,@Param("pwd") String pwd);

    /**
     * 查询指定用户ID和权限名称的记录条数
     * @param userId 用户ID
     * @param gradeName 权限名称
     * @return 记录条数
     */
    @Select("SELECT COUNT(*) c FROM t_user_grade ug ,t_grade g\n" +
            "WHERE ug.`fk_gradeId`=g.`pk_gradeId`\n" +
            "AND ug.`fk_userId`=#{userId} AND g.`g_name`=#{name};")
    @ResultType(int.class)
    public int checkUserGrade(@Param("userId") int userId,@Param("name") String gradeName);

    /**
     * 修改用户权限
     * @param userId 用户ID
     * @param gradeArray 新权限数组
     */
    public void update(@Param("userId") int userId,
                       @Param("gradeArray") int[] gradeArray);
}
